using System;
using System.Collections.Generic;
using System.Linq;
using DataAccess.BusinessEntities;

namespace DataAccess.Services
{
    public interface IDomainContext : IDisposable
    {
        void SaveChanges();

        void Save<T>(T entity) where T : class, IEntity;

        void Delete<T>(int id) where T : class, IEntity;

        IQueryable<Product> Products { get; }
        IQueryable<PersonalLocation> PersonalLocations { get; }
        IQueryable<Store> Stores { get; }
        IQueryable<User> Users { get; }
        IQueryable<Substance> Substances { get; }
        IQueryable<Container> Containers { get; }
    }

    public interface IFastDomainContext : IDomainContext
    {
    }
}
